package us.proyecto.canarios.domain;

// Generated 01-abr-2008 13:12:10 by Hibernate Tools 3.2.0.b11

import java.math.BigDecimal;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
/**
 * Clase que mapea la tabla MUNICIPIO
 * @author Juan Antonio Mena Sánchez
 *
 */
@Entity
@Table(name = "MUNICIPIO")
public class Municipio implements java.io.Serializable {

    private static final long serialVersionUID = 8448166296055141769L;
    private int id;
    private Provincia provincias;
    private String nombre;
    private Short comarca;
    private Integer XUtm;
    private Integer YUtm;
    private int numero;
    //private Byte huso;
    private Integer altitud;
    private BigDecimal superficie;


    public Municipio() {
    }

    public Municipio(int id, Provincia provincias, String nombre) {
        this.id = id;
        this.provincias = provincias;
        this.nombre = nombre;
    }


    @Id
    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "PROVINCIA", nullable = false, insertable = false, updatable = false)
    public Provincia getProvincias() {
        return this.provincias;
    }

    public void setProvincias(Provincia provincias) {
        this.provincias = provincias;
    }

    @Column(name = "NOMBRE", nullable = false, length = 64)
    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    @Column(name = "COMARCA", precision = 3, scale = 0)
    public Short getComarca() {
        return this.comarca;
    }

    public void setComarca(Short comarca) {
        this.comarca = comarca;
    }

    @Column(name = "X_UTM", precision = 7, scale = 0)
    public Integer getXUtm() {
        return this.XUtm;
    }

    public void setXUtm(Integer XUtm) {
        this.XUtm = XUtm;
    }

    @Column(name = "Y_UTM", precision = 7, scale = 0)
    public Integer getYUtm() {
        return this.YUtm;
    }

    public void setYUtm(Integer YUtm) {
        this.YUtm = YUtm;
    }

    /*@Column(name = "HUSO", precision = 2, scale = 0)
    public Byte getHuso() {
        return this.huso;
    }

    public void setHuso(Byte huso) {
        this.huso = huso;
    }
*/
    @Column(name = "ALTITUD", precision = 5, scale = 0)
    public Integer getAltitud() {
        return this.altitud;
    }

    public void setAltitud(Integer altitud) {
        this.altitud = altitud;
    }

    @Column(name = "SUPERFICIE", precision = 38, scale = 0)
    public BigDecimal getSuperficie() {
        return this.superficie;
    }

    public void setSuperficie(BigDecimal superficie) {
        this.superficie = superficie;
    }

    /*
     * @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "municipios") public Set<Pistas> getPistases() { return
     * this.pistases; }
     *
     * public void setPistases(Set<Pistas> pistases) { this.pistases = pistases; }
     *
     * @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "municipios") public Set<Bloques> getBloqueses() { return
     * this.bloqueses; }
     *
     * public void setBloqueses(Set<Bloques> bloqueses) { this.bloqueses = bloqueses; }
     *
     * @OneToMany(cascade = CascadeType.ALL, mappedBy = "municipios") // @LazyCollection(LazyCollectionOption.FALSE) public Set<Montes>
     * getMonteses() { return this.monteses; }
     *
     * public void setMonteses(Set<Montes> monteses) { this.monteses = monteses; }
     *
     * @OneToMany(cascade = CascadeType.ALL, mappedBy = "municipios") public Set<Rodales> getRodaleses() { return this.rodaleses; }
     *
     * public void setRodaleses(Set<Rodales> rodaleses) { this.rodaleses = rodaleses; }
     */

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public int getNumero() {
        return numero;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj != null) {
            if (this.getId() == ((Municipio) obj).getId()) {
                return true;
            }
        }
        return false;
    }

    @Override
    public int hashCode() {
        // TODO Auto-generated method stub
        return this.getId();
    }



}
